%wwyx: wwyx@hotmail.com 2025.03.17： 当前版本是在前人2024年版本门基础上进行的修改，具体修改部分会用wwyx进行注释说明

%========加粗宋体==========================================
% wwyx 2024.12.30: 关于宋体加粗字体依赖
% - 外部依赖方式：Fonts存放着加粗宋体，编译时会需要，因此始终确保在这根路径中，正常运行即可。（不论你是texpage/overleaf的线上用户还是本地用户，请务必确保这个文件夹的存在） 使用这一方式需要将style.tex中第三行修改为\setboolean{usesystem_cuSong}{false} 
% - 系统依赖：对于本地用户（vscode/texlive用户等,尤其是中文的windows系统用户），通常系统中可能已经有了宋体加粗字体，如果想明确使用系统自带的加粗宋体，请将需要将style.tex中修改为\setboolean{usesystem_cuSong}{true}    
\usepackage{ifthen}
\newboolean{usesystem_cuSong}
\setboolean{usesystem_cuSong}{false}
% ========================================================


% ===============================================
\usepackage{xcolor}
\usepackage{listings}
% =================================


%\usepackage{times} 
\usepackage{fontspec}% 将英文，数字设为新罗马字体
\setmainfont{Times New Roman}
\usepackage{indentfirst}

\usepackage[font=small]{caption} % 将图注和表注设为5号宋体
%\usepackage[font=small,labelfont={bf,sf},tableposition=top]{caption}
%\renewcommand {\thetable} {\thesection{}.\arabic{table}}
%\renewcommand {\thefigure} {\thesection{}.\arabic{figure}}

\renewcommand{\listfigurename}{图\quad 目\quad 录}
\renewcommand{\listtablename}{表\quad 目\quad 录}

% ================================================================
% 定制参考文献
\usepackage[backend=biber,style=gb7714-2015,url=false,doi=false,eprint=false,maxnames=10, gbnamefmt=lowercase, gbpunctin=false]{biblatex}
\renewcommand{\bibfont}{\zihao{5}\songti} % 设置参考文献五号宋体
% ================================================================


% ================================================================
% 2025.03.18 wwyx修改：2025年版本的重师官网给出Word模板没有使用国家标准，  将多引用分隔符从 "-" 改为 "]-[" 
% 如果哪天重师模板又恢复了，将这一整段注释掉即可
% \renewcommand{\compcitedelim}{]-[}
% \DeclareDelimFormat{multicitedelim}{\addsemicolon\space} % 避免多余空格干扰
% \DeclareDelimFormat{postnotedelim}{\addcolon\space}       % 保证页码前缀正确性
% ================================================================





% ================================================================
% 自定义定于环境
\newtheorem{definition}{\hspace{2em}定义}
\newtheorem{lemma}{\hspace{2em}引理}
\newtheorem{theorem}{\hspace{2em}命题}
% ================================================================

% =================================================================
% 将图、表、公式、定义环境编号设为按节编号
\usepackage{chngcntr}
\counterwithin{table}{section}
\counterwithin{figure}{section}
\counterwithin{equation}{section}
\counterwithin{definition}{section}
\counterwithin{lemma}{section}
\counterwithin{theorem}{section}
% =================================================================

\usepackage{longtable}                           % 使用长表格
\usepackage{graphicx}                            % 插入图片
\usepackage{subfig}                              % 定义子图
%\usepackage{indentfirst} % 首行缩进2字符         %  这个命令已经被ctex 包所考虑，此处可以不用
%\setlength{\parindent}{2em} 
 
\usepackage{amsmath,amssymb,amsfonts}            % 数学符号，环境等
%\usepackage{hyperref}                           % 建立f引用，生成鼠标点击跳转
\usepackage{zhnumber}                            % 处理封面时间


% ================================================================
% 定制章、节等样式       一级标题上空一行未成功
% \usepackage{ctex}                               % 中文字体、布局等功能
% \usepackage{xeCJK}

% ========================================
% 2025新：直接通过ctex管理字体
\setCJKmainfont{FandolSong}[
    Script      = CJK,                          % 关键参数
    BoldFont    = FandolSong-Bold, 
    AutoFakeSlant = 0.3,
    ItalicFont  = FandolKai-Regular             % 补充缺失声明
]


% ======2025.03.18, wwyx: ==============================
% 1. 由于重师2025提供的word论文模板对于每个标题前面的数字标号字体要求是未给出的，且其文中给出的也是混乱的，有的是宋体有的是黑体，因此统一以宋体的标号为准
% 2. 由于重师2025提供的word论文模板对于每个标题到正文的行间距是没有给出的，对于大标题只是提及“空一行”，而明显在其2025的模板中大标题“目录”上方是空的明显大于一行，因此只能以大体目测的“稍微大于一行的上间距” 去调整去设置行间距
% \usepackage{titlesec}
% \ctexset{section={number=\arabic{section},format=\heiti\zihao{3}\centering}} 
\ctexset{
    section = {
        number      = \arabic{section},
        format      = \heiti\zihao{3}\centering,
        beforeskip  = 1.0\baselineskip,  % 上间距初始为0
        afterskip   = 1.0\baselineskip,  % 下间距
    }
}

\ctexset{subsection={
    number=\arabic{section}.\arabic{subsection},
    % numberformat=\heiti,
    format=\heiti\zihao{-3}\raggedright,
    beforeskip=1\baselineskip,  % 新增：二级标题上方间距（原默认约1ex）
    afterskip=0.14\baselineskip     % 新增：二级标题下方间距（原默认约0.5ex
}}


% 如需调整三级标题
\ctexset{subsubsection={
    number=\arabic{section}.\arabic{subsection}.\arabic{subsubsection},
    % numberformat=\heiti,
    format=\heiti\zihao{4}\raggedright,
    beforeskip=1\baselineskip,  % 三级标题上方间距
    afterskip=0.14\baselineskip     % 三级标题下方间距
}}
%\ctexset{punct=quanjiao}
% ===============================================================



% =======================================

% ========================================





% ===============================================================
% 定制版面，页眉，页脚，页边距等
\usepackage{geometry}
% ======定义页边距/天头线，装订线==================
\newgeometry{top=30mm, 
	bottom=25mm, 
	left=25mm, 
	right=25mm, %  2012年模板要求右边距25mm
    bindingoffset=10mm,  %  wwyx: 2025
	headheight=16mm,
	footskip=15mm
}
% ===============================================




% ===================定义页脚、页眉 ==========
\usepackage{fancyhdr}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhead[L]{\songti\zihao{5}重庆师范大学硕士学位论文}
\fancyhead[R]{\songti\zihao{5}\leftmark}
\fancyfoot[C]{\zihao{-5}\thepage}
\pagestyle{fancy}
% ===============================================================


\usepackage{hyper}       % 建立跳转
\usepackage{booktabs}          % 绘制三线表
\usepackage{enumitem}          % 定制枚举、列表等环境

\usepackage[linesnumbered,ruled]{algorithm2e}     % 定制算法环境

% ===============================================================
% tikz 绘图，绘制流程图、组织结构图等
\usepackage{tikz}
\usetikzlibrary{calc,fit}
\usetikzlibrary{arrows,shapes}
\usetikzlibrary{shapes.multipart}
% Define the basic shape of flow chart
\tikzstyle{chapter} = [rectangle, minimum width=1.5cm, minimum height=1cm, text centered, draw=black]
\tikzstyle{startstop} = [rectangle, rounded corners, minimum width = 1.6cm, minimum height=1cm,text centered, draw = black, fill = red!30]
\tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill = blue!25]
\tikzstyle{process} = [rectangle, minimum width=1.5cm, minimum height=1cm, text centered, draw=black, fill = yellow!35]
\tikzstyle{decision} = [diamond, aspect = 3, text centered, minimum width = 2.5cm, draw=black, fill = green!45]% arrow shape
\tikzstyle{arrow} = [->,>=stealth,line width=1.2pt]
\tikzset{block/.style={draw, thick, text width=2.2cm , minimum height=0.8cm, align=center}, line/.style={-latex,color=pink,very thin}}
% ===============================================================


% ========================定制附录============================
\ctexset{appendix={
		name={\heiti\zihao{3}附录,：\hskip -1em}
}}
% ============================================================


% ========================定义中文摘要页======================
\newenvironment{ChineseAbstract}{
%	\mbox{}\newline
%	\mbox{}\\[\baselineskip]
	\leavevmode \\
	\begin{center}\heiti\zihao{3} \title \end{center}
	\newline
	%\begin{center}\heiti\zihao{3} 摘\qquad\qquad 要 \end{center}
	\section*{摘\hskip 2em 要}

     \addcontentsline{toc}{section}{\hskip -1em\bfseries 摘要}
	\newline
	\songti\zihao{-4}
	\begin{quote}\indent
}{\end{quote}\newpage}

\newcommand{\ChineseKeywords}[1]{{\heiti\zihao{-4}关键词：}\songti\zihao{-4} #1}

% ============================================================
% =========================定义英文摘要页==========================
\newenvironment{EnglishAbstract}{
	\mbox{}\newline
	\begin{center}\zihao{3}\bfseries \englishtitle \end{center}
	\newline
	%\begin{center}\zihao{3}\bfseries{ABSTRACT} \end{center}
	\section*{\bfseries{ABSTRACT}}
	\addcontentsline{toc}{section}{\hskip -1em\bfseries ABSTRACT}
	\newline
	\songti\zihao{-4}
	\begin{quote}
		\indent
	}{\end{quote}\newpage}

\newcommand{\EnglishKeywords}[1]{{\zihao{-4}\bfseries Keywords：}\zihao{-4} #1}

% ============================================================



% ============================定制目录=============================
\usepackage{titletoc}
\renewcommand{\contentsname}{ 目\hspace{2em}录}  % 直接定义标题格式
%\ctexset{contentsname={\heiti\zihao{3}目~~~录}}
%\titlecontents{section}[1em]{\zihao{4}\bf\heiti}{\contentslabe%l{1em}}{}{\titlerule*[0.5pc]{$\cdot$}\contentspage}	
%\titlecontents{subsection}[4em]{\zihao{5}\heiti\bf}{\contentsl%abel{2.5em}}{}{\titlerule*[0.5pc]{$\cdot$}\contentspage}
%\titlecontents{subsubsection}[6em]{\zihao{5}\songti}{\contents%label{2.5em}}{}{\titlerule*[0.5pc]{$\cdot$}\contentspage}




% ============================修改后的目录条目定义=============================
\ifthenelse{\boolean{usesystem_cuSong}}
{ % 使用系统字体
  \newCJKfontfamily\songtibf{FZCuSong-B09S}[BoldFont=FZCuSong-B09S]
  \titlecontents{section}[1em]
    {\zihao{4}\songtibf}                                 % 节标题加粗
    {\contentslabel{1em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\zihao{5}\songti\contentspage}  % 固定点线为普通字体
  \titlecontents{subsection}[4em]
    {\zihao{5}\songtibf}
    {\contentslabel{1.9em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\zihao{5}\songti\contentspage}
  \titlecontents{subsubsection}[6em]
    {\zihao{5}}
    {\contentslabel{2.5em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\songti\contentspage}
}
{ % 使用外部字体
  \newCJKfontfamily\songtibf{SourceHanSerifCN-SemiBold.otf}[Path=./Fonts/, BoldFont=SourceHanSerifCN-SemiBold.otf]
  \titlecontents{section}[1em]
    {\bfseries\zihao{4}\songtibf}
    {\contentslabel{1em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\songti\zihao{5}\contentspage}  % 重置字体
  \titlecontents{subsection}[4em]
    {\bfseries\zihao{5}\songtibf}
    {\contentslabel{1.9em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\songti\zihao{5}\contentspage}
  \titlecontents{subsubsection}[6em]
    {\zihao{5}}
    {\contentslabel{2.5em}}
    {}
    {\titlerule*[0.5pc]{\normalfont\textperiodcentered}\normalfont\songti\zihao{5}\contentspage}
}




\lstset{
    basicstyle=\ttfamily\footnotesize,
    numbers=left,            
    numberstyle=\tiny\color{gray},
    stepnumber=1,
    numbersep=5pt,
    backgroundcolor=\color{white},
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    frame=single,
    rulecolor=\color{black},
    tabsize=4,
    captionpos=b,
    breaklines=true,
    breakatwhitespace=false,
    keywordstyle=\color{blue},
    commentstyle=\color{olive},
    stringstyle=\color{red},
    language=Python  % 显式声明编程语言
}
% 自定义配置参数描述样式
\newcommand{\configparam}[2]{
    \begin{tabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}r@{}}
        \textbf{#1} & #2 \\
    \end{tabular*}
}

% % 原参考文献配置
\renewcommand{\bibfont}{\zihao{5}\songti}
% 修改为
\renewcommand{\bibfont}{\zihao{5}\setlength{\baselineskip}{20pt}\songti} % 五号宋体，固定行距20pt
\setlength{\bibitemsep}{0pt} % 项间距固定为20pt



% 定义新的 refenumerate 环境
\newlist{refenumerate}{enumerate}{1} % 创建一个新的列表环境
\setlist[refenumerate]{ % 配置新环境的参数
  itemsep=0pt,             % 消除项间额外间距
  parsep=0pt,             % 段落间距固定20pt
  topsep=0pt,              % 顶部间距为0
  labelindent=1.5em,       % 标号缩进量
  labelwidth=3em,          % 标号宽度
  label={[\arabic*]},      % 标号格式为 [1], [2], ...
  font=\normalfont,        % 数值标号字体
  align=left,              % 对齐方式
  leftmargin=*,            % 边界控制参数
  before={\zihao{5}\songti\setlength{\baselineskip}{20pt}} % 五号宋体，固定行距20pt
}

% =============可选：带有约定行间距的目录 ==================================================
% %  wwyx: 解除注释即可使用：，学校提供的模板没有提供任何目录的行间距内容，所以具体行间距是相对字体的倍率还是固定应该都无所谓吧。
% % 定义固定行距的字体命令 (字号=12pt->对应小四, 行距=20pt≈6.66mm)
% \newcommand{\fixedbaseline}{\fontsize{12}{16}\selectfont} % 主标题行距 (可根据实际字号调整)
% \newcommand{\fixedsubbaseline}{\fontsize{10.5}{16}\selectfont} % 子标题行距 (五号字)

% \ifthenelse{\boolean{usesystem_cuSong}}
% { % 使用系统字体
%   \newCJKfontfamily\songtibf{FZCuSong-B09S}[BoldFont=FZCuSong-B09S]
%   % Section (节)
%   \titlecontents{section}[1em]
%     {\zihao{4}\songtibf\fixedbaseline} % ✨ 添加行距
%     {\contentslabel{1em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\zihao{5}\songti\contentspage}

%   % Subsection (小节)
%   \titlecontents{subsection}[4em]
%     {\zihao{5}\songtibf\fixedsubbaseline} % ✨
%     {\contentslabel{1.9em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\zihao{5}\songti\contentspage}

%   % Subsubsection (子小节)
%   \titlecontents{subsubsection}[6em]
%     {\zihao{5}\fixedsubbaseline} % ✨
%     {\contentslabel{2.5em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\songti\contentspage}
% }
% { % 使用外部字体
%   \newCJKfontfamily\songtibf{SourceHanSerifCN-Bold.otf}[Path=./Fonts/, BoldFont=SourceHanSerifCN-Bold.otf]
%   % Section (节)
%   \titlecontents{section}[1em]
%     {\bfseries\zihao{4}\songtibf\fixedbaseline} % ✨
%     {\contentslabel{1em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\songti\zihao{5}\contentspage}

%   % Subsection (小节)
%   \titlecontents{subsection}[4em]
%     {\bfseries\zihao{5}\songtibf\fixedsubbaseline} % ✨
%     {\contentslabel{1.9em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\songti\zihao{5}\contentspage}

%   % Subsubsection (子小节)
%   \titlecontents{subsubsection}[6em]
%     {\zihao{5}\fixedsubbaseline} % ✨
%     {\contentslabel{2.5em}}
%     {}
%     {\titlerule*[0.5pc]{\normalfont\rmfamily.}\normalfont\songti\zihao{5}\contentspage}
% }
% ============================================================